The present invention relates to a process for bootstrapping IP allocations of embedded Network Management Cards for networked uninterruptible power supplies and other devices. More particularly, it relates to a method and apparatus for automatic selection and operation of IP allocation for a networked uninterruptible power supply or other supported device according to one of the following protocols Dynamic Host Control Protocol, BootP protocol, gleaning and static IP allocation.
Data communications networks are widespread and there are many different types of networks, including LANs (Local Area Networks), MANs (Metropolitan Area Networks), and WANs (Wide Area Networks). They are used for providing numerous services, both for companies and for individuals. They provide a powerful communication mechanism and allow access to various kinds of remote information. Two or more networks connected together form an internetwork (or internet). The “Internet” is a worldwide internet widely used to connect universities, government offices, companies, and private individuals. Every host (or end-user's machine running user applications) and router interface on the Internet has an IP address, which encodes its network number and host number. The combination is unique and no two machines have the same IP address. IP addresses are typically 32 bits long and are used in the source address and destination address fields of IP packets. The Source Address is the ultimate source of the IP packet; the Destination Address is the ultimate destination of the IP packet.
A number of mechanisms and facilities have been developed in the prior art to deal with assigning IP addresses. For example, the IP address for an uninitialized network server/host system has typically been determined through the BootP Protocol, the Dynamic Host Configuration Protocol (DHCP), the Reverse Address Resolution Protocol (RARP), or the use of Uni-Cast Ethernet/IP packets, all of which are well known to those of ordinary skill in the relevant arts. In a like manner, DHCP has commonly been used for IP address validation and rediscovery. The most common are the BootP Protocol and The DHCP, which is an extension of the BootP Protocol.
All of the devices on a network need to be configured to operate in accordance with the design of the network. Furthermore, a network administrator must be able to control the network and to prevent conflicts between devices and addresses on a network. Originally, networks had to be manually configured. For manual configuration, the network information, including the IP addresses were assigned individually to each device on the network. In order to make a change, each device would have to be separately changed. As networks increased in size, this became increasingly cumbersome. The BootP Protocol eliminates the need for manual configuration. When the BootP protocol is used to assign an IP address, a network device requests configuration information, including IP addresses, from a BootP server. The configuration information has to be entered into the BootP server, but the information does not have to be entered separately on each device. To make changes in the network, only the information on the BootP server needs to be changed. The BootP process is fully described in Request For Comments (RFC) 951 and any subsequent amendments thereto, incorporated herein, in its entirety, by reference.
With increases in network size, maintaining unique IP addresses becomes more difficult. The number of IP addresses is fixed by the address length. Therefore, a method developed to provide dynamic assignment of IP addresses. The DHCP is used for dynamic IP address allocation. DHCP is fully described in the Request For Comments (RFC) 2131 and any subsequent amendments thereto, incorporated herein in its entirety by reference. DHCP is primarily a protocol for assigning a dynamic Internet Protocol (IP) address to devices on a network. Accordingly, DHCP permits the automatic configuration of IP parameters on network devices. However these configuration parameters are interface specific, and do not include global or non-interface specific configuration parameters, such as for example router parameters.
The Dynamic Host Configuration Protocol (DHCP) has been developed to provide an automated assignment of IP addresses and to help solve the shortage of IP addresses. Conventional DHCP operation is as follows: When a DHCP client computer attempts an Internet connection, it broadcasts a DHCP request asking for any DHCP server on the network to provide it with an IP address and configuration parameters. A DHCP server on the network that is authorized to configure this client will offer an IP address by sending a reply to the client. Upon receiving this offer, the client may decide to accept it or wait for additional offers from other DHCP servers on the network. At the end, the client chooses and accepts one offer, and the chosen DHCP server sends an acknowledgement with the offered IP address having an associated “lease” time (and any other configuration parameters the client might have requested). During the lifetime of the lease, the client will repeatedly ask the server to renew. If the client chooses not to renew or if the client machine is shut down, the lease eventually expires. Once the lease expires, the IP address can be “recycled” and given to another machine.
The same IP address may not be issued to more than one user on the network. DHCP servers commonly verify addresses by using a “ping” service to determine that an IP address is not already in use. The ping utility broadcasts packets with a specific IP destination address. If there is a computer using that IP address on the network, it sends back a reply. However, this ping utility only works effectively in a small system such as a LAN and when all users on the network are running their computers. Also, depending upon the network load, routers are not obliged to respond to pings, hence ping is an unreliable mechanism. Ping is governed by the ICMP protocol known to those of ordinary skill in the art.
While DHCP simplifies the process for automatic assignment of IP addresses, it increases the difficulties of controlling the network. Specifically, since the IP address of a particular client device may change upon each initialization, locating a specific device on the network is difficult. All of the devices need to be accessed by a Ping to determine the address and location of each device. When different types of devices are present on a network, the location of certain types of devices may be important to a network administrator. For example, when uninterruptible power supplies (UPS) are used in a network, the network administrator may wish to address each of these devices. Within a DHCP network, the location and addresses of UPSs remain unknown. Therefore, a need exists for a system which allows the location of specific devices to be known within a dynamic IP address allocation system.
Additionally, a client device must operate according to the IP allocation protocol of the network to which it is connected. A DHCP client will not function with a BootP server. However, a DHCP server can be configured to accommodate BootP devices. Nevertheless, a need exists for a client communication system which can operate according to different IP allocation processes and which automatically selects an appropriate process depending upon the network to which it is attached.